//
//  main.c
//  c primer plus five
//
//  Created by huanghui on 16/7/25.
//  Copyright © 2016年 huanghui. All rights reserved.
//

//c primer plus 第五章习题

//一次最好只运行一题，不然可能定义的变量重复

#include <stdio.h>

void cube (int i);

void Temperatures (double fahrenheit);

int main(int argc, const char * argv[]) {
    
    //第一题 编写一个程序将分钟表示的时间转换成小时和分钟表示的时间
    
//    const int HOUR = 60;
//    
//    int minutes;
//    
//    printf("请输入分钟数：");
//    
//    scanf("%d",&minutes);
//    
//    while (0 < minutes && minutes <=1440)
//    {
//        
//        //一天分钟没有大于1440的，故多加了此项
//        printf("时间为%d时%d分\n",minutes/HOUR,minutes%HOUR);
//        
//        printf("请输入分钟数：");
//        
//        scanf("%d",&minutes);
//        
//        
//    }
    
    //第二题 编写一个程序 ，此程序要求输入一个整数，然后打印出从输入的值到比他大十的所有整数
    
//    int integer,integeradd10;
//    
//    printf("请输入一个整数：");
//    
//    scanf("%d",&integer);
//    
//    integeradd10 = integer + 11;
//    
//    while (integer<integeradd10)
//    {
//        
//        printf("%d\n",integer);
//        
//        integer++;
//    }

    //第三题 编写一个程序要求用户输入天数，然后将该值转换成周数和天数
    
//    int day;
//    
//    const int week = 7;
//    
//    printf("请输入任一天数:");
//    
//    scanf("%d",&day);
//    
//    printf("%d days are %d weeks, %d day\n",day,day/week,day%week);
    
    //第四题 编写一个程序让用户按厘米输入一个高度，然后按照厘米和英寸英尺显示这个值，允许厘米和英寸显示数值。直到用户输入一个非正的数值。
//    const double IN = 0.3937008;
//    
//    const int  FT = 0.0328084;
//    
//    double cm;
//   
//    
//    printf("Enter a height in centimeters:");
//    
//    scanf("%lf",&cm);
//    
//    while (cm>=0)
//    {
//        
//        printf("%lfcm = %d feet,%lf inches\n",cm,(int)cm * FT,cm * IN);
//        
//        printf("Enter a height in centimeters(<=0 to quit):");
//        
//        scanf("%lf",&cm);//    }
//    
//    printf("bye\n");
    
    //第五题：改写用来找到前20个整数之和的程序addemup.c
    
//    int count,sum,last;
//    
//    count = 0;
//    
//    last = 0;
//    
//    printf("请输入一个整数：");
//    
//    scanf("%d",&sum);
//    
//    while (count++ < sum)
//    
//    last = last + count;
//    
//    printf("从count累加到该数的值为%d",last);
   
    //第六题：改写编程练习五中的程序使它能计算整数平方的和
    
//    int count,sum,last;
//    
//        count = 0;
//    
//        last = 0;
//    
//        printf("请输入一个整数：");
//    
//        scanf("%d",&sum);
//    
//        while (count++ < sum)
//    
//        last = last + count*count;
//        
//        printf("从count累加到该数的值为%d",last);
    
    //第七题：编写一个程序，该程序要求输入一个float型数并打印该数的立方值。使用你自己设计的函数来计算该值的立方并将其打印出来。main()程序把输入的值传递给该函数
//    int i;
//    
//    printf("请输入一个整数：");
//    
//    scanf("%d",&i);
//    
//    cube(i);
    
    //第八题：编写一个程序，该程序要求输入一个华氏温度。程序以double类型读入温度值。并将它作为一个参数传递给用户提供的函数Temperatures.该函数将计算相应的摄氏温度和绝对温度并以小数点右边有两位数字的精度显示这三个值
    double fahrenheit;
    
    printf("请输入一个华氏温度：");
    
    
    while (scanf("%lf",&fahrenheit) == 1)
    {
        Temperatures(fahrenheit);
        
        printf("请输入一个华氏温度：");
        
        
        
        
        
    }
}

void cube (int i)//建立一个计算立方值的函数（第七题）
{

    i = i * i * i;
    
    printf("该值的立方值是%d\n",i);

}

void Temperatures (double fahrenheit)
{
    const double FAHRENHEIT = fahrenheit;
    
    const double CELSIUS = fahrenheit *1.8 +32.0;
    
    const double KELVIN = fahrenheit + 273.16;
    
    printf("FAHRENHEIT = %lf℉,CELSIUS = %lf℃, KELVIN = %lfk\n",FAHRENHEIT,CELSIUS,KELVIN);
}
